1. Field of the Invention
This invention relates to systems and methods for storing and accessing data in a flash memory system.
2. Background of the Invention
Solid-state drives, also referred to as SSDs, are data storage devices that make use of nand flash memory devices as storage elements. Typically they have a SSD controller that accepts host commands on one end and communicate to the nand flash on the other. Nand flash is a type of non-volatile storage device that retains data when powered off. The SSD controller accesses the nand flash device through the nand interface.
The page is the smallest memory operation unit, i.e. a program or read operation is performed on a page. Typical nand page sizes are ˜4 KByte, ˜8 KByte, and ˜16 KByte. The page sizes may be slightly larger than 4 KByte, 8 KByte, or 16 KByte to accommodate the data ECC parity. The typical nand interface data rates can be 200 MBps to 400 MBps. For a read, the memory read time will be ˜60 μs and data transfer out would be ˜40 μs for ˜16 KB data, ˜20 μs for 8 KB data and ˜10 μs for 4 KB.
Logical block addressing (LBA) is a common scheme used for specifying the location of blocks of data stored on computer storage devices, generally systems such as hard drives and SSDs. Typical host LBA granularity is 512 bytes. The SSD controller can choose to operate on 4 KBytes and manages the mapping between the 512 byte host LBA number and the 4 KByte controller LBA number. Each LBA in the system needs to be mapped to unique data units. The size of this data unit defines how large the physical address pointer is. As a result the size of the LBA pointer would be a function of the number of dies, number of blocks, number of pages and size of data unit, depending on the size of the data unit in the page.
The apparatus and methods disclosed herein provide an improved apparatus and method for storing, accessing, and maintaining data blocks, such as LBAs in a nand flash device or other storage devices.